﻿#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//double Power(int n, int k)
//{
//	if(k == 0)
//	{
//		return 1.0;
//	}
//	else if (k > 0)
//	{
//		return n * Power(n, k - 1);
//	}
//	else
//	{
//		return (1.0 / Power(n, -k));
//	}
//}
//int main()
//{
//	int n = 0;
//	int k = 0;
//	printf("请输入底数和指数\n");
//	scanf("%d %d", &n, &k);
//	double ret = Power(n, k);
//	printf("%lf", ret);
//	return 0;
//}


#include <stdio.h>


//#include <stdio.h>
//int Fac(int n)
//{
//	if (n == 1)
//		return 1;
//	else
//		return n * Fac(n - 1);
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = Fac(n);
//	printf("%d\n", ret);
//	return 0;
//}

#include <stdio.h>

//int Fac(int n)
//{
//	int ret = 1;
//	int  i = 0;
//	for (i = 1; i <= n; i++)
//	{
//		ret *= i;
//		//每次进来 * i
//	}
//	return ret;
//}
//int main()
//{
//	int n = 0;
//	printf("请输入要求的阶乘->");
//	scanf("%d", &n);
//	int ret = Fac(n);//要求的n的阶乘
//	printf("%d", ret);
//	return 0;
//}


//int main()
//{
//	int arr[3][4] = { {0,1,2,3 }, {4,5,6,7},{8,9,10,11} };
//	int* str = arr[0];
//	for (int i = 0; i < 3; i++)
//	{
//		printf("%d ", *(str + i));
//	}
//
//	return 0;
//}


//#include <stdio.h>
//int main()
//{
//    int arr[] = { 1,2,(3,4),5 };
//    printf("%d\n", sizeof(arr));
//    return 0;
//}

//将数组A中的内容和数组B中的内容进行交换。（数组一样大）

//int main()
//{
//	int A[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int B[10] = { 11,12,13,14,15,16,17,18,19,20 };
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		int tmp = A[i];
//		A[i] = B[i];
//		B[i] = tmp;
//	}
//
//	return 0;
//}

//创建一个整形数组，完成对数组的操作
//实现函数init() 初始化数组为全0
//实现print()  打印数组的每个元素
//实现reverse()  函数完成数组元素的逆置。


void print(int* str,int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *(str + i));
	}
}

void reverse(int arr[],int sz)
{
	int left = 0;
	int right = sz - 1;
	while (left < right)
	{
		int tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
	}
}


void init(int* str, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		*(str + i) = 0;
	}
}

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);

	//打印数组的每个元素
	print(arr,sz);

	//函数完成数组元素的逆置。
	reverse(arr,sz);

	//初始化数组为全0
	init(arr,sz);

	return 0;
}